//package com.datasource.dynamicdatasource.config;
//
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
//
//import javax.annotation.Resource;
//import javax.sql.DataSource;
//import java.util.HashMap;
//import java.util.Map;
//
//
///**
// * @author sl
// * @Primary主要注入的bean
// */
//@Configuration
//@Primary
//public class DynamicDataSource extends AbstractRoutingDataSource {
//
//
//    public static ThreadLocal<String> nameFlag = new ThreadLocal<>();
//
//    @Resource
//    private DataSource dataSource1;
//
//    @Resource
//    private DataSource dataSource2;
//
//
//    @Override
//    protected Object determineCurrentLookupKey() {
//        // 返回当前数据源的标识
//        return nameFlag.get();
//    }
//
//    @Override
//    public void afterPropertiesSet() {
//
//        // 为targetDataSources 初始化所有数据源
//        Map<Object,Object> targetDataSources=new HashMap<>();
//
//        targetDataSources.put("student",dataSource1);
//        targetDataSources.put("teacher",dataSource2);
//
//        super.setTargetDataSources(targetDataSources);
//        // 设置默认数据源
//        super.setDefaultTargetDataSource(dataSource1);
//
//        // 循环给resolvedDataSources，也就是最终数据源map
//        super.afterPropertiesSet();
//
//    }
//}
